package com.atguigu.jdbc2;


import com.atguigu.jdbc.JDBCUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;

import java.sql.SQLException;
import java.util.List;

/*
    使用DBUtils框架实现增，删，改，查的操作

 */
public class DBUtilsDemo {

    @Test
    public void test() throws SQLException {
        //1.创建QueryRunner对象
        QueryRunner queryRunner = new QueryRunner();
        //2.向表中插入一条数据
        String sql = "insert into emp(id,name) values(?,?)";
        /*
            update方法用来实现增，删，改
            第一个参数 ：连接对象
            第二个参数 ：sql语句
            第三个参数 ：占位符上的数据
            返回值 ：几条数据受到影响
         */
        int i = queryRunner.update(JDBCUtils.getConnection(), sql, 100, "abc");
        System.out.println("有" + i + "条数据受到影响");
    }

    /*
        查询
     */
    @Test
    public void test2() throws SQLException {
        //1.创建QueryRunner对象
        QueryRunner queryRunner = new QueryRunner();
        //2.查询单条数据
        /*
        query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
        第一个参数 ：连接对象
        第二个参数 ：sql语句
         */
//        String sql = "select id,name from emp where id=?";
//        Employee emp = queryRunner.query(JDBCUtils.getConnection(), sql,
//                new BeanHandler<Employee>(Employee.class), 1);

        //3.获取多条数据
        String sql = "select id as sid,name from emp";
        List<Employee> query = queryRunner.query(JDBCUtils.getConnection(), sql,
                new BeanListHandler<Employee>(Employee.class));

        for (Employee emp : query) {
            System.out.println(emp.getSid() + "===" + emp.getName());
        }
    }
}
